package com.chuhe.common.domain.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 用户信息
 * </p>
 *
 * @author 张楚河
 * @since 2025-05-08
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("user_info")
public class UserInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 用户ID
     */
    @TableId("user_id")
    private String userId;

    /**
     * 邮箱
     */
    @TableField("email")
    private String email;

    /**
     * 昵称
     */
    @TableField("nick_name")
    private String nickName;

    /**
     * 0:直接加入  1:同意后加好友
     */
    @TableField("join_type")
    private Integer joinType;

    /**
     * 性别 0:女 1:男
     */
    @TableField("sex")
    private Integer sex;

    /**
     * 密码
     */
    @TableField("password")
    private String password;

    /**
     * 个性签名
     */
    @TableField("personal_signature")
    private String personalSignature;

    /**
     * 状态
     */
    @TableField("status")
    private Integer status;

    /**
     * 创建时间
     */
    @TableField("create_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 最后登录时间
     */
    @TableField("last_login_time")
    private Date lastLoginTime;

    /**
     * 地区
     */
    @TableField("area_name")
    private String areaName;

    /**
     * 地区编号
     */
    @TableField("area_code")
    private String areaCode;

    /**
     * 最后离开时间
     */
    @TableField("last_off_time")
    private Long lastOffTime;


}
